const router = require('express').Router();
const Jwt = require('../../common/token/jwt');//处理token的工具 json web token
const signinModel = require('../../model/signinModel');

// 添加签到
// URL: /api/signin/add
// 参数：s_year, s_month, s_date, s_text, token
router.post('/add', async (req, res) => {
    let token = req.body.token || req.headers.token;
    let result = new Jwt(token).verifyToken();
    // 登录状态
    if (result.code == 200) {
        let user_id = result.info.data;
        let { s_year, s_date, s_month, s_text } = req.body;
        if ( s_year && s_date && s_month && s_text) {
            // 添加签到
            await signinModel.add(s_year, s_month, s_date, s_text, user_id)
                .then(
                    (data) => {
                        res.send(data);
                    },
                    (err) => {
                        res.send(err);
                    }
                )
        }
        else {
            res.send({
                code: -1,
                msg: '缺少参数'
            })
        }
    }
    else {
        // 不是登录状态
        res.send({
            code: -1,
            msg: '您还没有登录哦。'
        })
    }
})

// 签到列表
// URL: /api/signin/list
// 参数：token
router.get('/list', async (req, res) => {
    let token = req.query.token || req.headers.token;
    let result = new Jwt(token).verifyToken();
    // 登录状态
    if (result.code == 200) {
        let user_id = result.info.data;
        if (user_id) {
            // 获取签到列表
            await signinModel.list(user_id)
                .then(
                    (data) => {
                        res.send(data);
                    },
                    (err) => {
                        res.send(err);
                    }
                )
        }
        else {
            res.send({
                code: -1,
                msg: '缺少参数'
            })
        }
    }
    else {
        // 不是登录状态
        res.send({
            code: -1,
            msg: '您还没有登录哦。'
        })
    }

})

// 删除签到
// URL: /api/signin/remove
// 参数： id , token
router.post('/remove', async (req, res) => {
    let token = req.body.token || req.headers.token;
    let result = new Jwt(token).verifyToken()
    if (result.code == 200) {
        // 登录状态
        let { id } = req.body;
        if (id) {
            // 删除签到
            await signinModel.remove(id)
                .then(
                    (data) => {
                        res.send(data);
                    },
                    (err) => {
                        res.send(err);
                    }
                )

        }
        else {
            res.send({
                code: -1,
                msg: '缺少参数'
            })
        }


    }
    else {
        // 不是登录状态
        res.send({
            code: -1,
            msg: '您还没有登录哦。'
        })
    }
})

// 统计个人的签到天数
// URL: /api/signin/total
// 参数： token
router.post('/total', async (req, res) => {
    let token = req.body.token || req.headers.token;
    let result = new Jwt(token).verifyToken()
    if (result.code == 200) {
        // 登录状态
        let user_id = result.info.data;
        if (user_id) {
            // 删除签到
            await signinModel.total(user_id)
                .then(
                    (data) => {
                        res.send(data);
                    },
                    (err) => {
                        res.send(err);
                    }
                )

        }
        else {
            res.send({
                code: -1,
                msg: '缺少参数'
            })
        }


    }
    else {
        // 不是登录状态
        res.send({
            code: -1,
            msg: '您还没有登录哦。'
        })
    }
})

// 统计所有签到天数
// URL: /api/signin/total_all
// 参数： 无
router.post('/total_all', async (req, res) => {
    let token = req.body.token || req.headers.token;
    let result = new Jwt(token).verifyToken()
    if (result.code == 200) {
        // 登录状态
        let user_id = result.info.data;
        if (user_id) {
            // 删除签到
            await signinModel.total_all()
                .then(
                    (data) => {
                        res.send(data);
                    },
                    (err) => {
                        res.send(err);
                    }
                )

        }
        else {
            res.send({
                code: -1,
                msg: '缺少参数'
            })
        }


    }
    else {
        // 不是登录状态
        res.send({
            code: -1,
            msg: '您还没有登录哦。'
        })
    }
})
module.exports = router;